//输入后缀表达式，计算出结果
/*
后缀表达式的计算方法：
    从左往右看，如果是数字，压入栈，如果是符号，取出栈顶两个数字运算，压入结果
    最后的值就是结果
*/
#include <vector>
#include <string>
#include <stack>
using namespace std;

int eralPRN(vector<string>& tokens)
{
    stack<int> s;
    for(int i=0;i<=tokens.size();i++)
    {
        if(tokens[i]=="+"||tokens[i]=="-"||tokens[i]=="*"||tokens[i]=="/")
        {
            int num1=s.top();
            s.pop();
            int num2=s.top();
            s.pop();
            if(tokens[i]=="+")  s.push(num2+num1);
            if(tokens[i]=="-")  s.push(num2-num1);
            if(tokens[i]=="*")  s.push(num2*num1);
            if(tokens[i]=="/")  s.push(num2/num1);//这里易错，是先进栈的除以后进栈的（后出的除以先出的）
            //无论是什么运算，都是  先进栈 O 后进栈，后出栈 O 先出栈
        }
        else
            s.push(stoi(tokens[i]));    //stoi()可以将字符串变成整数型
    }
    return s.top();
}

